Inspired by the computational capability of the human brain, cognitive computing and learning has become an increasingly attractive paradigm for future computation beyond the von Neumann architecture. Along this path toward machine intelligence, machine learning using adaptive dictionaries is the state-of-the-art method of analyzing data. Recent advances in neuro-inspired machine learning algorithms have shown tremendous success in speech/image recognition when run on supercomputers. However, hardware based on sequential von Neumann architecture is inadequate for learning in real-time due given power constraints and the large amounts of data to be analyzed. One proposed solution is the use of resistive cross point arrays. Resistive cross point arrays are utilized to store dictionary weights and to perform matrix vector multiplication operations. While resistive devices in the resistive cross point arrays are provided with multi-level resistive states to represent the dictionary weights, it is difficult to represent large numbers of the dictionary weights with a large resistive cross point array. More specifically, intrinsic process variations in the resistance values of the resistive devices can result in significant loss of precision and therefore unacceptable errors when implementing the learning algorithms. Therefore, more precise techniques of representing dictionary weights with resistive cross point arrays are needed.